using System;
using System.ComponentModel.DataAnnotations;

namespace ThridGroup.ERP.Application.Contracts.DTO.WarehouseManagement
{
    /// <summary>
    /// 创建或更新库位设置DTO
    /// </summary>
    public class CreateUpdateWarehouseLocationSettingDto
    {
        /// <summary>
        /// 库位编码
        /// </summary>
        [Required(ErrorMessage = "库位编码不能为空")]
        [StringLength(50, ErrorMessage = "库位编码长度不能超过50个字符")]
        public string LocationCode { get; set; } = string.Empty;
        
        /// <summary>
        /// 库位名称
        /// </summary>
        [Required(ErrorMessage = "库位名称不能为空")]
        [StringLength(100, ErrorMessage = "库位名称长度不能超过100个字符")]
        public string LocationName { get; set; } = string.Empty;
        
        /// <summary>
        /// 所属库区ID
        /// </summary>
        [Required(ErrorMessage = "所属库区不能为空")]
        public int WarehouseAreaId { get; set; }
        
        /// <summary>
        /// 面积
        /// </summary>
        public decimal Area { get; set; }
        
        /// <summary>
        /// 最大载重量
        /// </summary>
        public decimal MaxCapacity { get; set; }
        
        /// <summary>
        /// 库位坐标X
        /// </summary>
        public int LocationX { get; set; }
        
        /// <summary>
        /// 库位坐标Y
        /// </summary>
        public int LocationY { get; set; }
        
        /// <summary>
        /// 库位坐标Z
        /// </summary>
        public int LocationZ { get; set; }
        
        /// <summary>
        /// 是否已使用
        /// </summary>
        public bool IsUsed { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        [StringLength(500, ErrorMessage = "备注长度不能超过500个字符")]
        public string Remark { get; set; } = string.Empty;
    }
} 